package com.zhihuishu.micro.course.openapi.course;


import java.util.List;
import java.util.Map;

import com.zhihuishu.micro.course.openapi.course.dto.CourseSpeakerOpenDto;
import com.zhihuishu.remote.RemoteException;
import com.zhihuishu.remote.RemoteResult;

public interface CourseSpeakerOpenService {
	/**
	 * 新增（1.课程主讲人 教学团队，2.课程负责人）
	 * @Description 
	 * @author shehuaiyang
	 * @date 2016年9月13日 上午9:37:35
	 * @modifyNote 
	 * @param csd
	 * @return
	 * @throws RemoteException
	 */
	RemoteResult<CourseSpeakerOpenDto> save(CourseSpeakerOpenDto  csd) throws RemoteException ;
	/**
	 * 更新（1.课程主讲人 教学团队，2.课程负责人）
	 * @Description
	 * @author shehuaiyang
	 * @date 2016年9月13日 上午9:38:44
	 * @modifyNote 
	 * @param csd
	 * @return
	 * @throws RemoteException
	 */
	RemoteResult<CourseSpeakerOpenDto> update(CourseSpeakerOpenDto  csd) throws RemoteException ;
	/**
	 * 查询（1.课程主讲人 教学团队，2.课程负责人）
	 * @Description
	 * @author shehuaiyang
	 * @date 2016年9月13日 上午9:40:15
	 * @modifyNote 
	 * @param userId
	 * @return
	 * @throws RemoteException
	 */
	RemoteResult<List<CourseSpeakerOpenDto>> courseSpeakearList(long courseId) throws RemoteException ;
	/**
	 * 删除（1.课程主讲人 教学团队，2.课程负责人）
	 * @Description 
	 * @author shehuaiyang
	 * @date 2016年9月13日 下午2:42:33
	 * @modifyNote 
	 * @param csd
	 * @return
	 * @throws RemoteException
	 */
	RemoteResult<Void> delete(Integer  id) throws RemoteException ;
	/**
	 * 根据Id查询教师团队条数
	 * @Description
	 * @author shehuaiyang
	 * @date 2016年9月14日 下午4:52:47
	 * @modifyNote 
	 * @param id
	 * @return
	 * @throws RemoteException
	 */
	RemoteResult<Integer> countCourseSpeaker(Integer  id) throws RemoteException ;
     /**
      * 根据Id查询教师团队
      * @Description
      * @author shehuaiyang
      * @date 2016年9月14日 下午4:53:12
      * @modifyNote 
      * @param id
      * @return
      * @throws RemoteException
      */
	RemoteResult<CourseSpeakerOpenDto> findCourseSpeakerById(Integer  id) throws RemoteException ;
	
	/**
	 * 查询教学团队是否完整
	 * 
	 * @Description
	 * @author shisong
	 * @date 2016年10月17日 下午2:25:01
	 * @modifyNote 
	 * @param courseId
	 * @return 
	 * @throws RemoteException
	 */
	RemoteResult<Map<String,Boolean>> findCourseSpeakerIsComplete(Long courseId) throws RemoteException;
}
